package net.realsee.domain.wcs.rcs.hik.v4;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * 额外信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class HikTaskExtra {

    private String async;

    /**
     * 角度信息，包含角度类型与角度值。
     */
    private AngleInfo angleInfo;

    /**
     * 载具的信息，包含载具编号、层号。
     * 使用场景：
     * 1.装卸机或输送线专用
     * 2.载具与站点没有绑定，但需要传入载具的场景。
     */
    private List<CarrierInfo> carrierInfo;

    /**
     * 角度信息，包含角度类型与角度值。
     */
    @Data
    public static class AngleInfo {

        /**
         * 角度类型。可扩展枚举值。
         * 预制枚举值：
         * 相对角度(与工作站的方向无关)
         * RELATIVE
         * 绝对角度(与工作站的方向有关)
         * ABSOLUTE
         * 旋转
         */
        private String type;

        /**
         * 与type对应的值
         * 角度值
         * [0, 90, 180, -90]
         */
        private String code;

    }

    /**
     * 载具的信息，包含载具编号、层号。
     * 使用场景：
     * 1.装卸机或输送线专用
     * 2.载具与站点没有绑定，但需要传入载具的场景。
     */
    @Data
    public static class CarrierInfo {

        private String carrierCode;

        private String carrierType;

    }

}
